// pages/login/login.js
const {
  Login,
  Member
} = require('../../utils/api')
let timer = 0;
Page({
  /**
   * 页面的初始数据
   */
  data: {
    code: ''
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    let that = this;
    wx.login({
      success: res => {
        that.data.code = res.code
      }
    })
  },
  loginFn(e) {
    let data = e.detail,
      _this = this;
    if (e.detail.errMsg !== "getUserInfo:ok") {
      return;
    }
    wx.checkSession({
      success: function (res) {
        if (res.errMsg !== "checkSession:ok") {
          return;
        }
        _this.loginfns(data)
      },
      fail: function (res) {
        wx.login({
          success: res => {
            _this.data.code = res.code
          }
        })
      }
    })
  },
  loginfns(data) {
    // 发送 res.code 到后台换取 openId, sessionKey, unionId
    let obj = {
      iv: data.iv,
      code: this.data.code,
      encryptedData: data.encryptedData,
      signature: data.signature
    }
    Login(obj).then(res => {
      if (res.code == 200) {
        wx.setStorage({
          data: res.token,
          key: 'token_',
        })
        this.getMember()
      } else {
        timer++;
        if (timer >= 2) {
          wx.navigateBack();
          return
        }
        setTimeout(() => {
          this.loginfns(data)
        }, 1000)
      }
    })
  },
  getMember() {
    Member().then(res => {
      if (res.code == 200) {
        wx.navigateBack();
      }
    })
  },
  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },
})